﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.UI.Bovespa.Alocacao.Communication.Translator.DataContractToModel
{
    /// <summary>
    /// Tradutor de Negocio Alocado
    /// </summary>
    public class NegocioAnulado
    {

        public Sinacor.Infra.UI.Common.ModelCollection<Sinacor.UI.Bovespa.Alocacao.Model.NegocioAnulado> ToNegocioAnulado(List<Sinacor.UI.Bovespa.Alocacao.Communication.Bovespa.Alocacao.NegocioAnulado.NegocioAnuladoResponse> from)
        {
            Sinacor.Infra.UI.Common.ModelCollection<Sinacor.UI.Bovespa.Alocacao.Model.NegocioAnulado> to = new Sinacor.Infra.UI.Common.ModelCollection<Sinacor.UI.Bovespa.Alocacao.Model.NegocioAnulado>();
            foreach (Sinacor.UI.Bovespa.Alocacao.Communication.Bovespa.Alocacao.NegocioAnulado.NegocioAnuladoResponse item in from)
            {
                to.Add(ToNegocioAnulado(item));
            }
            return to;
        }

        private Sinacor.UI.Bovespa.Alocacao.Model.NegocioAnulado ToNegocioAnulado(Sinacor.UI.Bovespa.Alocacao.Communication.Bovespa.Alocacao.NegocioAnulado.NegocioAnuladoResponse from)
        {
            Sinacor.UI.Bovespa.Alocacao.Model.NegocioAnulado to = new Sinacor.UI.Bovespa.Alocacao.Model.NegocioAnulado();

            to.Ativo = from.Ativo;
            to.Bolsa = from.Bolsa;
            to.CodigoCliente = from.CodigoCliente;
            to.Contraparte = from.Contraparte;
            to.DataMovimento = from.DataMovimento;
            to.DataOrdem = from.DataOrdem;
            to.DataPregao = from.DataPregao;
            to.Home = from.Home;
            to.HoraNegocio = from.HoraNegocio;
            switch (from.NaturezaOperacao)
            {
                case Communication.Bovespa.Alocacao.NegocioAnulado.NaturezaOperacao.Compra:
                    to.NaturezaOperacao = Model.Enum.NaturezaOperacao.Compra;
                    break;

                case Communication.Bovespa.Alocacao.NegocioAnulado.NaturezaOperacao.CompraVenda:
                    to.NaturezaOperacao = Model.Enum.NaturezaOperacao.CompraVenda;
                    break;

                case Communication.Bovespa.Alocacao.NegocioAnulado.NaturezaOperacao.Venda:
                    to.NaturezaOperacao = Model.Enum.NaturezaOperacao.Venda;
                    break;

                default:
                    break;

            }
            to.Negocio = from.Negocio;
            to.Ordem = from.Ordem;
            to.Origem = from.Origem;
            to.Preco = from.Preco;
            to.Quantidade = from.Quantidade;
            to.QuantidadeEspecificada = from.QuantidadeEspecificada;
            to.SequenciaOrdem = from.SequenciaOrdem;


            return to;
        }
    }
}
